[IAD-BACKEND-004] Создать метод /api/v1/auth/refresh
Разработка auth-identity-service (Backend): Реализация метода ротации пары токенов сессии.
NoteКраткая карточка задачи
- Эпик: EPIC-IAD-001
- Компонент: auth-identity-service (FastAPI / gRPC)
- Статус: Готово к реализации
- Ссылка на Метод: /api/v1/auth/refresh
1. Бизнес-контекст и цель (Business Context)
Короткоживущие Access-токены требуют прозрачного обновления на клиенте без участия пользователя. Метод должен принимать старый Refresh-токен, аннулировать его в базе и выдавать новую чистую пару.
Цель задачи: Реализовать логику ротации сессий и проверку TTL токена обновления в файле refresh.py.
2. Пользовательские истории (User Stories)
Как Авторизованный пользователь приложения FoodLifeCycle,
Я хочу, чтобы приложение само обновляло сессию при истечении токена доступа,
Чтобы не прерывать процесс сканирования чеков или готовки.
Задача 1: Разработка эндпоинтов авторизации, обновления сессий и логаута на API Gateway
- Репозиторий / Компонент:
backend-api(API Gateway). - Контракт методов:
POST /api/v1/auth/register(или/login)POST /api/v1/auth/refreshPOST /api/v1/auth/logout
- Инструкция по шагам:
- На Шагах 1-3: Написать эндпоинты аутентификации. Реализовать первичную Pydantic-валидацию входящего тела (поля
email,password) и пробросить запрос по внутреннему gRPC/HTTP протоколу вauth-service. - На Шагах 9-11: Для эндпоинта ротации токенов принимать в теле запроса
current_refresh_token. Вызывать внутренний синхронный gRPC-метод авторизационного воркераVerifyAndRotate. - На Шагах 15-17: Для эндпоинта
logoutизвлекать строкуAccess Tokenиз заголовкаAuthorization: Bearer <token>иRefresh Tokenиз тела запроса. Направлять команду на отзыв сессии вauth-service. Возвращать клиенту статус200 OK(Шаг 20).
- На Шагах 1-3: Написать эндпоинты аутентификации. Реализовать первичную Pydantic-валидацию входящего тела (поля